#ifndef __RECKON__INCLUDES_H__
#define __RECKON__INCLUDES_H__

// common
#include "Types.h"
#include "Macros.h"
#include "Constants.h"

// boost
// smart pointer
#include "boost/shared_ptr.hpp"
// foreach
#include "boost/foreach.hpp"
#define foreach				BOOST_FOREACH
#define reverse_foreach		BOOST_REVERSE_FOREACH

// STL
#include <vector>
#include <map>
#include <deque>
#include <list>
#include <string>

#ifdef _UNICODE
typedef std::wstring	tstring;
#else
typedef std::string		tstring;
#endif

#if defined(_AFXDLL) && !defined(_RECKON_STATIC)
#	if defined(_RECKON_DLL)
#		define RECKON_CLASS		__declspec(dllexport)
#		define RECKON_API		__declspec(dllexport)
#	else
#		define RECKON_CLASS		__declspec(dllimport)
#		define RECKON_API		__declspec(dllimport)
#	endif
#else
#	define RECKON_CLASS
#	define RECKON_API
#endif

#endif // __RECKON__INCLUDES_H__